package com.orifine.orm.type;

public class DataType {
	/**
	 * CHAR(size)
	 * 保存固定长度的字符串（可包含字母、数字以及特殊字符）。在括号中指定字符串的长度。最多 255 个字符。
	 */
	public static final String CHAR = "CHAR";
	
	/**
	 * VARCHAR(size)
	 * 保存可变长度的字符串（可包含字母、数字以及特殊字符）。在括号中指定字符串的最大长度。最多 255 个字符。
	 * 注释：如果值的长度大于 255，则被转换为 TEXT 类型。
	 */
	public static final String VARCHAR = "VARCHAR";
	
	/**
	 * TINYTEXT
	 * 存放最大长度为 255 个字符的字符串。
	 */
	public static final String TINYTEXT = "TINYTEXT";
	
	/**
	 * TEXT
	 * 存放最大长度为 65,535 个字符的字符串。
	 */
	public static final String TEXT = "TEXT";
	
	/**
	 * BLOB
	 * 用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。
	 */
	public static final String BLOB = "BLOB";
	
	/**
	 * MEDIUMTEXT
	 * 存放最大长度为 16,777,215 个字符的字符串。
	 */
	public static final String MEDIUMTEXT = "MEDIUMTEXT";
	
	/**
	 * MEDIUMBLOB
	 * 用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。
	 */
	public static final String MEDIUMBLOB = "MEDIUMBLOB";
	
	/**
	 * LONGTEXT
	 * 存放最大长度为 4,294,967,295 个字符的字符串。
	 */
	public static final String LONGTEXT = "LONGTEXT";
	
	/**
	 * LONGBLOB
	 * 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。
	 */
	public static final String LONGBLOB = "LONGBLOB";
	
	/**
	 * ENUM(x,y,z,etc.)
	 * 允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值，则插入空值。
	 * 注释：这些值是按照你输入的顺序存储的。
	 * 可以按照此格式输入可能的值：ENUM('X','Y','Z')
	 */
	public static final String ENUM = "ENUM";
	
	/**
	 * SET
	 * 与 ENUM 类似，SET 最多只能包含 64 个列表项，不过 SET 可存储一个以上的值。
	 */
	public static final String SET = "SET";
	
	/**
	 * -128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。
	 */
	public static final String TINYINT = "TINYINT";
	
	/**
	 * -32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。
	 */
	public static final String SAMLLINT = "SAMLLINT";
	
	/**
	 * -8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。
	 */
	public static final String MEDIUMINT = "MEDIUMINT";
	
	/**
	 * INT(size)
	 * -2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。
	 */
	public static final String INT = "INT";
	
	
	/**
	 * BIGINT(size)
	 * -9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。
	 */
	public static final String BIGINT = "BIGINT";
	
	/**
	 * FLOAT(size,d)
	 * 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
	 */
	public static final String FLOAT = "FLOAT";
	
	/**
	 * DOUBLE(size,d)
	 * 带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
	 */
	public static final String DOUBLE = "DOUBLE";
	
	/**
	 * DECIMAL(size,d)
	 * 作为字符串存储的 DOUBLE 类型，允许固定的小数点。
	 */
	public static final String DECIMAL = "DECIMAL";
	
	/**
	 * DATE()
	 * 日期。格式：YYYY-MM-DD
	 * 注释：支持的范围是从 '1000-01-01' 到 '9999-12-31'
	 */
	public static final String DATE = "DATE";
	
	/**
	 * DATETIME()
	 * *日期和时间的组合。格式：YYYY-MM-DD HH:MM:SS
	 * 注释：支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
	 */
	public static final String DATETIME = "DATETIME";
	
	/**
	 * TIMESTAMP()
	 * *时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式：YYYY-MM-DD HH:MM:SS
	 * 注释：支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC
	 */
	public static final String TIMESTAMP = "TIMESTAMP";
	
	/**
	 * TIME()
	 * 时间。格式：HH:MM:SS 注释：支持的范围是从 '-838:59:59' 到 '838:59:59'
	 */
	public static final String TIME = "TIME";
	
	/**
	 * YEAR()
	 * 2 位或 4 位格式的年。
	 * 注释：4 位格式所允许的值：1901 到 2155。2 位格式所允许的值：70 到 69，表示从 1970 到 2069。
	 */
	public static final String YEAR = "YEAR";
}
